Middleware may refer to a family of computer software that permits the interconnection, usually over a network, of disparate software components or applications possibly running across heterogeneous computing platforms. Middleware may be used to support complex distributed applications including web servers, application servers, content management systems, and more generally to support software products and tools that may be part of an information technology (IT) system. Use of such middleware may also be used to link new applications to older legacy systems. For example, service oriented architecture may use a service bus, which may be referred to as an enterprise service bus (ESB), which is a distributed software architecture implemented from a collection of middleware services to provide integration capabilities.
An ESB may create a virtual environment layered on top of an enterprise messaging system where services are advertised and accessed. A message bus or service bus may deliver foundational services for more complex architectures via an event-driven and messaging middleware. In this regard, an ESB may be a message transaction system that is a logical channel that carries messages that can be viewed by multiple recipients. For example the service ticket may be created and the corresponding data may be put on a message bus that can be processed by one or more systems depending on their interest in that particular ticket. Any system that has interest in the ticket may read the information from the message bus.
A service bus may be a logical concept that allows applications to be connected. In this regard, a service bus may allow the decoupling of data from the services acting on the data. Service buses may be used to pass events from one service to one or more other services. However, such events may be static in nature, containing a point in time snapshot of whatever data is contained therein.